//
//  BaseViewController.swift
//  fruit-helper-swift
//
//  Created by 赵隆杰 on 2022/6/11.
//

import UIKit
import DZNEmptyDataSet

class BaseViewController: UIViewController {
    
    public var tableView: UITableView

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = kViewBgColor

        tableView.separatorStyle = .none
        tableView.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
        tableView.estimatedRowHeight = 0
        tableView.estimatedSectionHeaderHeight = 0
        tableView.estimatedSectionFooterHeight = 0
        tableView.backgroundColor = .white
        tableView.scrollsToTop = true
        
        tableView.tableHeaderView = UIView.init(frame: CGRect(x: 0, y: 0, width: SL_WINDOW_WIDTH, height: CGFloat.leastNormalMagnitude))
        tableView.tableFooterView = UIView.init(frame: CGRect(x: 0, y: 0, width: SL_WINDOW_WIDTH, height: CGFloat.leastNormalMagnitude))
        
        tableView.delegate = self
        tableView.dataSource = self
        
        tableView.emptyDataSetSource = self
        tableView.emptyDataSetDelegate = self
    }
    
    init() {
        
        tableView = UITableView.init(frame: .zero, style: .plain)
        
        super.init(nibName: nil, bundle: nil)
        
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
}

extension BaseViewController: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell.init()
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 0
    }
    
}

extension BaseViewController: DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    func title(forEmptyDataSet scrollView: UIScrollView!) -> NSAttributedString! {
        let title = "暂无数据"
        let attributes = [
            NSAttributedString.Key.font: UIFont.systemFont(ofSize: 14),
            NSAttributedString.Key.foregroundColor: UIColor.init(hexString: "575757")!
        ]
        return NSAttributedString.init(string: title, attributes: attributes)
    }
    func image(forEmptyDataSet scrollView: UIScrollView!) -> UIImage! {
        return UIImage.init(named: "nodate")
    }
    func emptyDataSetShouldAllowScroll(_ scrollView: UIScrollView!) -> Bool {
        return true
    }
    func verticalOffset(forEmptyDataSet scrollView: UIScrollView!) -> CGFloat {
        return -100
    }
    func emptyDataSetWillAppear(_ scrollView: UIScrollView!) {
        self.tableView.setContentOffset(CGPoint(x: 0, y: -self.tableView.contentInset.top), animated: false)
    }
    
    
}
